﻿Public Class MitarbeiterverwaltungAdapter
    Inherits StammdatenverwaltungAdapter(Of frmMitarbeiterverwaltung, MitarbeiterverwaltungListener, Mitarbeiter)
    Implements MitarbeiterSelectorModelListener

    Sub New()
        MyBase.New(New frmMitarbeiterverwaltung())
        setComboboxes(Nothing, Nothing, Nothing)

        setListView(form.lsvMitarbeiter)
        addColumn("Vorname", "vorname")
        addColumn("Nachname", "nachname")
        addColumn("Stundenansatz", "stundenansatz")

        setDeleteButton(form.btnDelete)
        setSaveButton(form.btnSave)
        setEditButton(form.btnEdit)

        Context.MITARBEITER_SELECTOR_SERVICE.getObservable().addListener(Me)
    End Sub

    Protected Overrides Function getFormEntity(ByRef editEntity As Mitarbeiter) As Mitarbeiter
        Dim entity As New Mitarbeiter
        If editEntity IsNot Nothing Then
            entity = editEntity
        End If
        entity.vorname = form.txtMitarbeiterVorname.Text
        entity.nachname = form.txtMitarbeiterName.Text
        entity.passwort = form.txtPassword.Text

        If Not IsNumeric(form.txtStundenansatz.Text) Then
            Throw New Exception("Stundenansatz ist keine Zahl.")
        End If
        entity.stundenansatz = Val(form.txtStundenansatz.Text)
        Return entity
    End Function

    Protected Overrides Sub setFormEntity(ByRef entity As Mitarbeiter)
        form.txtMitarbeiterVorname.Text = entity.vorname
        form.txtMitarbeiterName.Text = entity.nachname
        form.txtPassword.Text = entity.passwort
        form.txtStundenansatz.Text = entity.stundenansatz
    End Sub

    Protected Overrides Sub clearForm()
        form.txtMitarbeiterVorname.Text = ""
        form.txtMitarbeiterName.Text = ""
        form.txtPassword.Text = ""
        form.txtStundenansatz.Text = ""
    End Sub

    Public Sub onMitarbeiterChange(ByRef mitarbeiter As System.Collections.Generic.List(Of Mitarbeiter)) Implements MitarbeiterSelectorModelListener.onMitarbeiterChange
        Me.setData(mitarbeiter)
    End Sub

End Class
